// 作业1:使用open write close的形式去创建一个大文件,内容从指定的文本中随机取一些（每次取得长度内容可以不一样）,计算出这个大文件出现最多的字符(要使用流的形式).


let str="hdsajkhd登记卡收到卡萨花洒借款单哈市核对撒谎大家卡死回到家开完会尽快带把伞uidhasjkdh还能进销差价萨克不能出现阿珂大数据看到撒gsdajhv打撒很简单跟我讲";

let fs=require("fs");
let fd=fs.openSync('./big.txt','w');
for(let i=0;i<10000;i++){
  
    let size=Math.ceil(Math.random()*30);

    
    let rq='';
 
    for(let i=0;i<size;i++){
     
        let suiji=Math.ceil(Math.random()*str.length);
        rq+=str.charAt(suiji);
    }
    fs.writeSync(fd,rq,{flag:'a'});
}


fs.closeSync(fd);

let rs=fs.createReadStream('./big.txt','utf-8');
rs.on("data",(chunk)=>{
    console.log(chunk);
});
rs.on("end",()=>{
    console.log("结束了")
    let neir=fs.readFileSync('./big.txt').toString();
    let shuzu=[];
    for(let j=0;j<neir.length;j++){
        if(shuzu[neir.charAt(j)]!=undefined){
            shuzu[neir.charAt(j)]+=1;
        }else{
            shuzu[neir.charAt(j)]=1
        }
    }
    let max=0;
    let zhi='';
    
    for (let key in shuzu) {
       if(shuzu[key]>max){
            max=shuzu[key];
            zhi=key;
       }
    }
    console.log(shuzu);
   console.log("此次文本中出现最多的字符是："+zhi+",共出现了"+max+"次")
})